package au.org.nh.dao;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

import org.hibernate.validator.constraints.Range;

@Entity
@Table(name = "PATIENTS", uniqueConstraints = { @UniqueConstraint(columnNames = { "age" }) })
public class PatientInfoWithBuilder {
	private Long id;

	String designationOfStaff;
	String patientDeclinedScreening;
	String screeningCompletedDate;

	// Patient details
	String name;
	String gender;
	@Range(min = 1, max = 120)
	@Column(name = "age", nullable = false)
	String age;

	// Distress thermometer
	String patientDistressScore;
	String distressThermometerCompletedBy;
	String ifCarer;

	// Risk Factor Check list
	String youngerThan55;
	String careOfDependents = null;
	String financialProblems;
	String stressfullLifeHistory;
	String lackSocialSupport;

	String previousPsychHistory;
	String highAlcoholDrugIntake;
	String anxietyOrDepression;
	String maleOrFemale;

	// Practical problems
	String childCare;
	String housing;
	String insurance;
	String finance;
	String transportation;
	String workOrSchool;
	String treatmentDecisions;

	// Physical problems;
	String appearance;
	String bathingOrDressing;
	String breathing;
	String urination;
	String constipation;
	String diarhoea;
	String eating;
	String fatigue;
	String feelingSwollen;
	String fevers;
	String gettingAround;
	String indigestion;
	String memoryConcentration;
	String mouthSores;
	// TODO : There is more cannot see it

	// Family Problems
	String dealingWithChildren;
	String dealingWithPartner;
	String abilityToHaveChildren;
	String familyHealthIssues;

	// Emotional problems
	String depression;
	String fears;

	// Actions from screening
	String culturalNeeds;
	String problems;
	String interpreterUsed;
	String language;

	// Summary patient cancer journey
	String cancerTumourStream;
	String cancerStage;

	// Location of screening
	String inOutPatient;
	String inPatientLoc;
	String outPatientLoc;

	// Carer needs
	String practicalNeeds;
	String familyNeeds;
	String emotionalNeeds;
	String spiritualReligousNeeds;
	String physicalNeeds;

	// GP Follow up
	String gpFollowUp;
	String listGPFollowUp;
	String faxToGP;

	// External Refrral
	String referredTo;
	String contactDetails;

	// Comments
	String comments;

	public PatientInfoWithBuilder() {

	}

	// private PatientInfoWithBuilder(final Builder builder) {
	// this.designationOfStaff = builder.designationOfStaff;
	// }

	@Id
	@GeneratedValue
	@Column(name = "PATIENT_ID")
	public Long getId() {
		return id;
	}

	public void setId(final Long id) {
		this.id = id;
	}

	public String getDesignationOfStaff() {
		return designationOfStaff;
	}

	public void setDesignationOfStaff(final String designationOfStaff) {
		this.designationOfStaff = designationOfStaff;
	}

	public String getPatientDeclinedScreening() {
		return patientDeclinedScreening;
	}

	public void setPatientDeclinedScreening(
			final String patientDeclinedScreening) {
		this.patientDeclinedScreening = patientDeclinedScreening;
	}

	public String getScreeningCompletedDate() {
		return screeningCompletedDate;
	}

	public void setScreeningCompletedDate(final String screeningCompletedDate) {
		this.screeningCompletedDate = screeningCompletedDate;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(final String gender) {
		this.gender = gender;
	}

	public String getAge() {
		return age;
	}

	public void setAge(final String age) {
		this.age = age;
	}

	public String getPatientDistressScore() {
		return patientDistressScore;
	}

	public void setPatientDistressScore(final String patientDistressScore) {
		this.patientDistressScore = patientDistressScore;
	}

	public String getDistressThermometerCompletedBy() {
		return distressThermometerCompletedBy;
	}

	public void setDistressThermometerCompletedBy(
			final String distressThermometerCompletedBy) {
		this.distressThermometerCompletedBy = distressThermometerCompletedBy;
	}

	public String getIfCarer() {
		return ifCarer;
	}

	public void setIfCarer(final String ifCarer) {
		this.ifCarer = ifCarer;
	}

	public String getYoungerThan55() {
		return youngerThan55;
	}

	public void setYoungerThan55(final String youngerThan55) {
		this.youngerThan55 = youngerThan55;
	}

	public String getCareOfDependents() {
		return careOfDependents;
	}

	public void setCareOfDependents(final String careOfDependents) {
		this.careOfDependents = careOfDependents;
	}

	public String getFinancialProblems() {
		return financialProblems;
	}

	public void setFinancialProblems(final String financialProblems) {
		this.financialProblems = financialProblems;
	}

	public String getStressfullLifeHistory() {
		return stressfullLifeHistory;
	}

	public void setStressfullLifeHistory(final String stressfullLifeHistory) {
		this.stressfullLifeHistory = stressfullLifeHistory;
	}

	public String getLackSocialSupport() {
		return lackSocialSupport;
	}

	public void setLackSocialSupport(final String lackSocialSupport) {
		this.lackSocialSupport = lackSocialSupport;
	}

	public String getPreviousPsychHistory() {
		return previousPsychHistory;
	}

	public void setPreviousPsychHistory(final String previousPsychHistory) {
		this.previousPsychHistory = previousPsychHistory;
	}

	public String getHighAlcoholDrugIntake() {
		return highAlcoholDrugIntake;
	}

	public void setHighAlcoholDrugIntake(final String highAlcoholDrugIntake) {
		this.highAlcoholDrugIntake = highAlcoholDrugIntake;
	}

	public String getAnxietyOrDepression() {
		return anxietyOrDepression;
	}

	public void setAnxietyOrDepression(final String anxietyOrDepression) {
		this.anxietyOrDepression = anxietyOrDepression;
	}

	public String getMaleOrFemale() {
		return maleOrFemale;
	}

	public void setMaleOrFemale(final String maleOrFemale) {
		this.maleOrFemale = maleOrFemale;
	}

	public String getChildCare() {
		return childCare;
	}

	public void setChildCare(final String childCare) {
		this.childCare = childCare;
	}

	public String getHousing() {
		return housing;
	}

	public void setHousing(final String housing) {
		this.housing = housing;
	}

	public String getInsurance() {
		return insurance;
	}

	public void setInsurance(final String insurance) {
		this.insurance = insurance;
	}

	public String getFinance() {
		return finance;
	}

	public void setFinance(final String finance) {
		this.finance = finance;
	}

	public String getTransportation() {
		return transportation;
	}

	public void setTransportation(final String transportation) {
		this.transportation = transportation;
	}

	public String getWorkOrSchool() {
		return workOrSchool;
	}

	public void setWorkOrSchool(final String workOrSchool) {
		this.workOrSchool = workOrSchool;
	}

	public String getTreatmentDecisions() {
		return treatmentDecisions;
	}

	public void setTreatmentDecisions(final String treatmentDecisions) {
		this.treatmentDecisions = treatmentDecisions;
	}

	public String getAppearance() {
		return appearance;
	}

	public void setAppearance(final String appearance) {
		this.appearance = appearance;
	}

	public String getBathingOrDressing() {
		return bathingOrDressing;
	}

	public void setBathingOrDressing(final String bathingOrDressing) {
		this.bathingOrDressing = bathingOrDressing;
	}

	public String getBreathing() {
		return breathing;
	}

	public void setBreathing(final String breathing) {
		this.breathing = breathing;
	}

	public String getUrination() {
		return urination;
	}

	public void setUrination(final String urination) {
		this.urination = urination;
	}

	public String getConstipation() {
		return constipation;
	}

	public void setConstipation(final String constipation) {
		this.constipation = constipation;
	}

	public String getDiarhoea() {
		return diarhoea;
	}

	public void setDiarhoea(final String diarhoea) {
		this.diarhoea = diarhoea;
	}

	public String getEating() {
		return eating;
	}

	public void setEating(final String eating) {
		this.eating = eating;
	}

	public String getFatigue() {
		return fatigue;
	}

	public void setFatigue(final String fatigue) {
		this.fatigue = fatigue;
	}

	public String getFeelingSwollen() {
		return feelingSwollen;
	}

	public void setFeelingSwollen(final String feelingSwollen) {
		this.feelingSwollen = feelingSwollen;
	}

	public String getFevers() {
		return fevers;
	}

	public void setFevers(final String fevers) {
		this.fevers = fevers;
	}

	public String getGettingAround() {
		return gettingAround;
	}

	public void setGettingAround(final String gettingAround) {
		this.gettingAround = gettingAround;
	}

	public String getIndigestion() {
		return indigestion;
	}

	public void setIndigestion(final String indigestion) {
		this.indigestion = indigestion;
	}

	public String getMemoryConcentration() {
		return memoryConcentration;
	}

	public void setMemoryConcentration(final String memoryConcentration) {
		this.memoryConcentration = memoryConcentration;
	}

	public String getMouthSores() {
		return mouthSores;
	}

	public void setMouthSores(final String mouthSores) {
		this.mouthSores = mouthSores;
	}

	public String getDealingWithChildren() {
		return dealingWithChildren;
	}

	public void setDealingWithChildren(final String dealingWithChildren) {
		this.dealingWithChildren = dealingWithChildren;
	}

	public String getDealingWithPartner() {
		return dealingWithPartner;
	}

	public void setDealingWithPartner(final String dealingWithPartner) {
		this.dealingWithPartner = dealingWithPartner;
	}

	public String getAbilityToHaveChildren() {
		return abilityToHaveChildren;
	}

	public void setAbilityToHaveChildren(final String abilityToHaveChildren) {
		this.abilityToHaveChildren = abilityToHaveChildren;
	}

	public String getFamilyHealthIssues() {
		return familyHealthIssues;
	}

	public void setFamilyHealthIssues(final String familyHealthIssues) {
		this.familyHealthIssues = familyHealthIssues;
	}

	public String getDepression() {
		return depression;
	}

	public void setDepression(final String depression) {
		this.depression = depression;
	}

	public String getFears() {
		return fears;
	}

	public void setFears(final String fears) {
		this.fears = fears;
	}

	public String getCulturalNeeds() {
		return culturalNeeds;
	}

	public void setCulturalNeeds(final String culturalNeeds) {
		this.culturalNeeds = culturalNeeds;
	}

	public String getProblems() {
		return problems;
	}

	public void setProblems(final String problems) {
		this.problems = problems;
	}

	public String getInterpreterUsed() {
		return interpreterUsed;
	}

	public void setInterpreterUsed(final String interpreterUsed) {
		this.interpreterUsed = interpreterUsed;
	}

	public String getLanguage() {
		return language;
	}

	public void setLanguage(final String language) {
		this.language = language;
	}

	public String getCancerTumourStream() {
		return cancerTumourStream;
	}

	public void setCancerTumourStream(final String cancerTumourStream) {
		this.cancerTumourStream = cancerTumourStream;
	}

	public String getCancerStage() {
		return cancerStage;
	}

	public void setCancerStage(final String cancerStage) {
		this.cancerStage = cancerStage;
	}

	public String getInOutPatient() {
		return inOutPatient;
	}

	public void setInOutPatient(final String inOutPatient) {
		this.inOutPatient = inOutPatient;
	}

	public String getInPatientLoc() {
		return inPatientLoc;
	}

	public void setInPatientLoc(final String inPatientLoc) {
		this.inPatientLoc = inPatientLoc;
	}

	public String getOutPatientLoc() {
		return outPatientLoc;
	}

	public void setOutPatientLoc(final String outPatientLoc) {
		this.outPatientLoc = outPatientLoc;
	}

	public String getPracticalNeeds() {
		return practicalNeeds;
	}

	public void setPracticalNeeds(final String practicalNeeds) {
		this.practicalNeeds = practicalNeeds;
	}

	public String getFamilyNeeds() {
		return familyNeeds;
	}

	public void setFamilyNeeds(final String familyNeeds) {
		this.familyNeeds = familyNeeds;
	}

	public String getEmotionalNeeds() {
		return emotionalNeeds;
	}

	public void setEmotionalNeeds(final String emotionalNeeds) {
		this.emotionalNeeds = emotionalNeeds;
	}

	public String getSpiritualReligousNeeds() {
		return spiritualReligousNeeds;
	}

	public void setSpiritualReligousNeeds(final String spiritualReligousNeeds) {
		this.spiritualReligousNeeds = spiritualReligousNeeds;
	}

	public String getPhysicalNeeds() {
		return physicalNeeds;
	}

	public void setPhysicalNeeds(final String physicalNeeds) {
		this.physicalNeeds = physicalNeeds;
	}

	public String getGpFollowUp() {
		return gpFollowUp;
	}

	public void setGpFollowUp(final String gpFollowUp) {
		this.gpFollowUp = gpFollowUp;
	}

	public String getListGPFollowUp() {
		return listGPFollowUp;
	}

	public void setListGPFollowUp(final String listGPFollowUp) {
		this.listGPFollowUp = listGPFollowUp;
	}

	public String getFaxToGP() {
		return faxToGP;
	}

	public void setFaxToGP(final String faxToGP) {
		this.faxToGP = faxToGP;
	}

	public String getReferredTo() {
		return referredTo;
	}

	public void setReferredTo(final String referredTo) {
		this.referredTo = referredTo;
	}

	public String getContactDetails() {
		return contactDetails;
	}

	public void setContactDetails(final String contactDetails) {
		this.contactDetails = contactDetails;
	}

	public String getComments() {
		return comments;
	}

	public void setComments(final String comments) {
		this.comments = comments;
	}

	public String getName() {
		return name;
	}

	public void setName(final String name) {
		this.name = name;
	}

	// public static class Builder {
	// String designationOfStaff;
	// String patientDeclinedScreening;
	// String screeningCompletedDate;
	//
	// // Patient details
	// String name;
	// String gender;
	// String age;
	//
	// // Distress thermometer
	// String patientDistressScore;
	// String distressThermometerCompletedBy;
	// String ifCarer;
	//
	// // Risk Factor Check list
	// String youngerThan55;
	// String careOfDependents = null;
	// String financialProblems;
	// String stressfullLifeHistory;
	// String lackSocialSupport;
	//
	// String previousPsychHistory;
	// String highAlcoholDrugIntake;
	// String anxietyOrDepression;
	// String maleOrFemale;
	//
	// // Practical problems
	// String childCare;
	// String housing;
	// String insurance;
	// String finance;
	// String transportation;
	// String workOrSchool;
	// String treatmentDecisions;
	//
	// // Physical problems;
	// String appearance;
	// String bathingOrDressing;
	// String breathing;
	// String urination;
	// String constipation;
	// String diarhoea;
	// String eating;
	// String fatigue;
	// String feelingSwollen;
	// String fevers;
	// String gettingAround;
	// String indigestion;
	// String memoryConcentration;
	// String mouthSores;
	// // TODO : There is more cannot see it
	//
	// // Family Problems
	// String dealingWithChildren;
	// String dealingWithPartner;
	// String abilityToHaveChildren;
	// String familyHealthIssues;
	//
	// // Emotional problems
	// String depression;
	// String fears;
	//
	// // Actions from screening
	// String culturalNeeds;
	// String problems;
	// String interpreterUsed;
	// String language;
	//
	// // Summary patient cancer journey
	// String cancerTumourStream;
	// String cancerStage;
	//
	// // Location of screening
	// String inOutPatient;
	// String inPatientLoc;
	// String outPatientLoc;
	//
	// // Carer needs
	// String practicalNeeds;
	// String familyNeeds;
	// String emotionalNeeds;
	// String spiritualReligousNeeds;
	// String physicalNeeds;
	//
	// // GP Follow up
	// String gpFollowUp;
	// String listGPFollowUp;
	// String faxToGP;
	//
	// // External Refrral
	// String referredTo;
	// String contactDetails;
	//
	// // Comments
	// String comments;
	//
	// public Builder designationOfStaff(final String desig) {
	// designationOfStaff = desig;
	// return this;
	// }
	//
	// public Builder patientDeclinedScreening(final String YesNo) {
	// this.patientDeclinedScreening = patientDeclinedScreening;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public Builder screeningCompletedDate(
	// final String screeningCompletedDate) {
	// this.screeningCompletedDate = screeningCompletedDate;
	// return this;
	// }
	//
	// public PatientInfoWithBuilder build() {
	// return new PatientInfoWithBuilder(this);
	// }
	//
	// }

}
